package com.mall.order.service;

import com.mall.order.model.dto.AppCreateOrderDto;
import com.mall.order.model.dto.OrderDto;
import com.mall.order.model.vo.OrderVo;
import com.mall.thirdparth.pay.model.vo.OrderPayRespVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface IAppOrderService {

    /**
     * 创建订单
     * @param dto 订单信息
     * @return 订单信息
     */
    OrderDto create(AppCreateOrderDto dto);

    /**
     * 微信支付
     * @param request 微信支付回调
     */
    void wechatPay(HttpServletRequest request);

    /**
     * 用户取消订单
     * @param orderId 订单ID
     */
    void cancel(Long orderId);

    /**
     * 订单收货
     * @param orderId 订单ID
     */
    void receipt(Long orderId);

    /**
     * 小程序订单分页
     * @param dto 订单扩展实体
     * @return 订单实体
     */
    List<OrderVo> page(OrderDto dto);

    /**
     * 订单详情
     * @param orderId 订单ID
     * @return 订单实体
     */
    OrderVo detail(Long orderId);

    /**
     * createPrePayOrder(String openId, Long orderId)
     * @param openId
     * @param orderId
     * @return
     */
    OrderPayRespVo createPrePayOrder(String openId, Long orderId);

}
